# coding=utf-8
'''
main function：主要实现把excel翻译导入到iOS 项目中
'''
#################
#

import xlwt
import xlrd
import sys

reload(sys)
sys.setdefaultencoding('utf8')


ptopen=open("en.strings",'r')
ptlines = ptopen.readlines()

newFile = open('Localizable.strings','w')
nofind = open('nofind2.strings','w')
modify = open('modify2.strings','w')

ExcelFile = xlrd.open_workbook('v4.2 iOS_EN_CZ.xls')
sheet = ExcelFile.sheet_by_name('data')


def iOSCheckString(value):

    # value = string.strip()  # 移除字符串头尾指定的字符（默认为空格或换行符）或字符序列 注意：该方法只能删除开头或是结尾的字符，不能删除中间部分的字符
    # colString = td.string.replace(u'\xa0', '') #去除空格
    # 有可能是安卓添加的，翻译过来可能会有以下特殊字符，都 要换成%@
    value = value.replace('%s', '%@')
    value = value.replace('% s', '%@')
    value = value.replace('%$s', '%@')
    value = value.replace('%1$s', '%@')
    value = value.replace('%2$s', '%@')
    value = value.replace('%3$s', '%@')
    value = value.replace('%4$s', '%@')
    value = value.replace('%5$s', '%@')
    value = value.replace('%1$ s', '%@')
    value = value.replace('%2$ s', '%@')
    value = value.replace('%3$ s', '%@')
    value = value.replace('%4$ s', '%@')
    value = value.replace('%5$ s', '%@')

    return value

def iosString(key,value):
    value = iOSCheckString(value)
    if value.endswith('":'):
        value = value.replace('":', '";')

    if value.startswith('"') and value.endswith('";'):
        text = key + ' = ' +  value  + '\n'
    elif value.startswith('"') and value.endswith('"; '):
        value = value.replace('"; ', '";')
        text = key + ' = ' + value + '\n'
    elif value.endswith(';') and not value.startswith('"'):
        value = value.split(';')[0].strip()
        text = key + ' = ' + '"' + value + '"' + ';' + '\n'
    elif value.startswith('"') and value.endswith(';'):
        value = value.split(';')[0].strip()
        text = key + ' = ' + value + '"' + ';' + '\n'
    elif value.startswith('"') and  value.endswith('"'):
        text = key + ' = ' + value  + ';' + '\n'
    else:
        text = key + ' = ' + '"' + value + '"' + ';' + '\n'
    return text


def enumBRFile():
    ptValueStr = ''
    for brline in ptlines:
        if '=' in brline:
            checke_excel(brline)
        else:
            newFile.write(brline)  # 非翻译内容，直接写入文件

def checke_excel(lineData):

    key = lineData.split('=')[0].strip()    #翻译文件中某一行的key值
    value = lineData.split('=')[1].strip()  #翻译文件中某一行的value值


    # excel 数据
    keys = sheet.col_values(0)  # 第二列
    values = sheet.col_values(2)  # 第三列

    findKey = False

    for inx, excel_key in enumerate(keys):
        excel_value = values[inx]

        # print("key={} value={}".format(key, value))

        if key == excel_key:
            findKey = True
            newFile.write(iosString(key, excel_value))
            # if excel_value == value:
            #     # print("不用修改：key={} value={}".format(key, value))
            #     newFile.write(lineData) # 这一行直接写入
            # else:
            #     # print("需要修改：key={} old={} new={}".format(key, value, excel_value))  # 打印每一列
            #     newFile.write(iosString(key,excel_value))
            #     modify.write(iosString(key, excel_value))
            # break;

    if not findKey:
        # print("excel文件中没有找到：key={} value={}".format(key, value))
        newFile.write(lineData)  # 这一行直接写入英文
        nofind.write(iosString(key, value))
        print lineData



if __name__ == "__main__":
    # 从返回结果来看，有登录成功

    enumBRFile()